JavaScript

Obstacles To Feeding Pacman

A Pac-Man-style p5.js game for a global food systems class: eat the right answers about feeding 9.5 billion people.

Click Start, then use the arrow keys.

Key Words: p5.js game · Feeding 9.5 billion people · Core mechanics · Collision detection · Game modes · UI components

What I Built:

Game Design:

I implemented the core mechanics of the Pac-Man game, including character movement, ghost behaviors, and collision detection using p5.js.

Game Modes:

I created different game modes such as a welcome screen, gameplay, question mode for answering educational prompts, and an end screen that displays the player's score and game-over message.

User Interface:

I designed the UI components to display the score, lives, and educational questions, enhancing the user experience during gameplay.

Animation and Interaction:

I used p5.js' built-in functions to animate characters, trigger events upon interactions (such as eating objects and encountering ghosts), and implement the game’s dynamic elements, like the random movements of the ghosts.

Overview:

A Pacman-inspired game with integrated educational questions. The player answers questions by "eating" certain objects in the game. Each correct answer rewards the player with points, and incorrect answers result in a loss of life. Created for global food systems class, specifically for the topic of obstacles to feeding 9.5 Billion.


Murder Mystery

A p5.js murder mystery made with Alyssa Mazzone and Danika Perez: play minigames to collect clues and find the killer.

Click the game to begin. It has sound.

In collaboration with Alyssa Mazzone and Danika Perez:

Key Words: p5.js murder mystery · Minigames · Particle system · Dynamic object creation and collision handling · Physics engine

What I Built:

Screen Management:

Each screen function, like startScreen() and murdererScreen(), dynamically renders content such as text, images, and animations to set the game’s tone and narrative. I added interactive visuals and sound cues to enhance the atmosphere, including startScreen()'s animated title text and background image that fades in and out, creating a suspenseful first impression.

User Interaction & Navigation:

The mouseClicked() function handles flexible navigation, allowing players to move between screens by once they complete a task. I also implemented resetGame() to randomize critical game elements, ensuring varied gameplay with each reset.

Weapons Class and Particle System:

Designed a challenging "clicker game" where players must quickly click the correct weapon type amidst other moving weapons in a particle system. This minigame includes dynamic object creation and collision handling. The render() function dynamically displays each weapon’s image based on type, tinting colors as visual feedback for the player. I implemented a physics engine in collide() to manage interactions between weapons, ensuring they move naturally on the screen and respond accurately when clicked. I further supported the atmosphere by adding sound effects to heighten player engagement during gameplay.

Overview:

In this murder mystery game, the user must play several minigames in order to collect hints to find the murderer. This game uses concepts of On-screen Dynamics, Random Numbers, Text, and particle systems.